package controller;

import databaseHandling.KampagneHandler;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import model.Kampagne;
import model.Salg;
import model.Vare;
import model.internt.VareSalg;
import utility.DebugUtility;

/**
 *
 * @author Maja
 */
public class SalgsController {

    private static SalgsController instance;
    private Salg aktivtSalg;
    private ArrayList<VareSalg> vareSalgsListe;

    private SalgsController() {
        vareSalgsListe = new ArrayList<>();
    }

    public static SalgsController getInstance() {
        if (instance == null) {
            instance = new SalgsController();
        }
        return instance;
    }

    public void opretNytSalg() {
        vareSalgsListe.clear();
    }

    
     public void tilføjVareTilSalg(Vare vare, int antal) throws SQLException, ParseException {
        boolean vareAlleredeTilføjetTilSalg = false;
        for (int i = 0; i < vareSalgsListe.size(); i++) {
            if (vareSalgsListe.get(i).getVare().getVareEAN().equals(vare.getVareEAN())) {
                vareAlleredeTilføjetTilSalg = true;
                vareSalgsListe.get(i).setAntal(vareSalgsListe.get(i).getAntal() + antal);
                if (vareSalgsListe.get(i).getAntal() == 0) {
                    vareSalgsListe.remove(i);
                }
            }
        }
        if (!vareAlleredeTilføjetTilSalg) {
            vareSalgsListe.add(new VareSalg(vare, antal));
        }
        DebugUtility.getInstance().soutDebugLine(this, 1, "Antal varer i aktivtSalg: " + vareSalgsListe.size());
        if (!vareSalgsListe.isEmpty()) {
            DebugUtility.getInstance().soutDebugLine(this, 1, "Antal varer af den første vare i vareListen på salget: " + vareSalgsListe.get(0).getAntal());
        }
        tjekKampagner();
    }

    public void tjekKampagner() throws SQLException, ParseException {
        ArrayList<Kampagne> kampagnelist = KampagneHandler.hentAlleKampagnerMedDisseVarer(vareSalgsListe);
        for (Kampagne kampagne : kampagnelist) {
            System.out.println(kampagne.toString());
        }
        
    }

}
